//你有一套活字字模 tiles，其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。 
//
// 注意：本题中，每个活字字模只能使用一次。 
//
// 
//
// 示例 1： 
//
// 输入："AAB"
//输出：8
//解释：可能的序列为 "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"。
// 
//
// 示例 2： 
//
// 输入："AAABBC"
//输出：188
// 
//
// 
//
// 提示： 
//
// 
// 1 <= tiles.length <= 7 
// tiles 由大写英文字母组成 
// 
// Related Topics 字符串 回溯 
// 👍 115 👎 0

  
package com.zwy.leetCode.editor.cn;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class LetterTilePossibilities{
    public static void main(String[] args) {
        Solution solution = new LetterTilePossibilities().new Solution();
        String s="AAB";
      }
      //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
        private int res=0;
        List<String>res0=new LinkedList<>();
    public int numTilePossibilities(String tiles) {
        int step=1;
        LinkedList<Integer>list=new LinkedList<>();

        String s="";
        for (int i = step; i < tiles.length(); i++) {
            backFind(step,tiles,list);
        }
        return 0;
    }
    public void backFind(int step,String tiles,LinkedList<Integer> list){
        if(list.size()==step){
            res++;

            return;
        }
        for (int i = 0; i < tiles.length(); i++) {
            if(list.contains(i))continue;
            list.add(i);
            backFind(step,tiles,list);
            list.removeLast();
        }
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}